// 1.按需导入create函数
import {create} from 'zustand';

// 2.创建store的hook
//  <>代表泛型的类型 同时需要加一个（） 才行；
const useStore = create<BearType>()((set,get)=>{
    // 这个return的对象中，存储了全局共享的数据方法
    return{
        bears:0,
        // incrementBears:()=>set({bears:9}),//先写死 ，
        incrementBears:()=>set((state)=>({bears:state.bears+1})),//自增 使用箭头函数返回一个新对象，好处是可以获取旧值
        restBears:()=>set({bears:0}),
        decrementBearsByStep:(step=1)=>set((state)=>({bears:state.bears-step})),
        asyncIncrementBears:()=>{
            setTimeout(() => {
                get().incrementBears()
            }, 1000);
        }
    }
})

// 3.向外导出store的hook
export default useStore